const webpack = require('webpack')
const path = require('path')
const resolve = dir => path.resolve(__dirname, dir)
module.exports = {
  configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'windows.jQuery': 'jquery'
      })
    ]
  },
  publicPath: process.env.NODE_ENV === 'production' ? '/datav' : '/', // 默认'/'，部署应用包时的基本 URL
  // baseUrl: './', // 默认'/'，部署应用包时的基本 URL
  outputDir: 'dist', // 'dist', 生产环境构建文件的目录
  assetsDir: '', // 相对于outputDir的静态资源(js、css、img、fonts)目录
  lintOnSave: false,
  runtimeCompiler: false, // 是否使用包含运行时编译器的 Vue 构建版本
  productionSourceMap: false, // 生产环境的 source map
  configureWebpack: {
    devtool: 'source-map'// 保证源码正确加载
  },
  chainWebpack: config => {
    // 移除 prefetch 插件 （首次加载无需一次性全部加载所有的chunk）
    config.plugins.delete('prefetch')
    config.plugin('html').tap(args => {
      args[0].title = '数据可视化' // 浏览器title
      return args
    })
    // 添加别名
    config.resolve.alias
      .set('@', resolve('src'))
      .set('assets', resolve('src/assets'))
      .set('components', resolve('src/components'))
      .set('common', resolve('src/common'))
      .set('store', resolve('src/store'))
      .set('api', resolve('src/api'))
      .set('router', resolve('src/router'))
      .set('utils', resolve('src/utils'))
  },
  css: {
    // modules: false,
    // extract: false,
    // sourceMap: false,

    loaderOptions: {
      sass: {
        // 给sass-loader 传递选项
        // @/是src的别名
        // 所以这里假设src/assets/css文件夹下有variables 这个文件
        data: `@import "~@/assets/css/variables.scss";`
      }
    }
  },
  devServer: {
    // host: 'localhost', // 设置ip或者localhost访问
    host: '0.0.0.0', // 本地访问
    port: 9000,
    hot: true, // 开启热更新
    overlay: false, // 开启报错提示显示在浏览器遮罩层
    historyApiFallback: false, // 设置vue-router的模式是history
    disableHostCheck: true,
    proxy: {
      '/api': {
        target: 'http://localhost:8089',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
          // pathRewrite: {'^/api': '/'} 重写之后url为 http://192.168.1.16:8085/xxxx
          // pathRewrite: {'^/api': '/api'} 重写之后url为 http://192.168.1.16:8085/api/xxxx
        }
      }
    }
  }
}
